home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d21
/
dvglue.arc
/
TVINT15N.C
< prev
next >
Wrap
C/C++ Source or Header
|
1990-01-09
|
2KB
|
54 lines
/*=======================================================*/
/* TVINT15N.C */
/* low-level functions for TV software interrupts */
/* requires MASM or A86 to recompile */
/* */
/* (c) Copyright 1988 Ralf Brown All Rights Reserved */
/* May be freely copied for noncommercial use, so long */
/* as this copyright notice remains intact, and any */
/* changes are marked in the comment blocks preceding */
/* functions. */
/*=======================================================*/
#pragma inline
#include "tvapi.h"
/*======================================================*/
/* _TVnotify_handler low-level function which passes */
/* control to user notification */
/* handler */
/* Ralf Brown 4/4/88 */
/*======================================================*/
void far pascal _TVnotify_handler(void)
{
void far (*handler)(void) ;
asm push es
asm push ds
asm push di
asm push si
asm push dx
asm push cx
asm push bx
asm push ax
/* now that we've saved all the registers, call the real handler */
asm mov handler,si /* build return address, and then jump to it */
asm mov handler+2,ds
asm mov ax,DGROUP /* initialize DS to our own data segment */
asm mov ds,ax
(*handler)() ;
/* restore the registers and return */
asm pop ax
asm pop bx
asm pop cx
asm pop dx
asm pop si
asm pop di
asm pop ds
asm pop es
}
/* End of TVINT15N.C */